#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/wait.h>
#include <stdint.h>
#include <sys/mman.h>
#include <fcntl.h>
#include <stdbool.h>
#include <errno.h>
#include <string.h>
#include <signal.h>
#include <dlfcn.h>
#include <pthread.h>
#include <linux/fb.h>
#include <sys/ipc.h>
#include <sys/shm.h>


int main(int argc, char const *argv[])
{
    mkfifo("/tmp/fifo", 0666);
    int fifo = open("/tmp/fifo", O_RDWR);

    // 模拟系统日志的文件
    int fd = open("log.txt", O_CREAT|O_APPEND|O_RDWR, 0666);
    if(fd == -1)
    {
        perror("open() log.txt failed");
        exit(0);
    }

    char buf[100];
    while(1)
    {
        bzero(buf, 100);
        int n = read(fifo, buf, 100);
        if(n == -1)
        {
            perror("read fifo failed");
            break;
        }

        // 将buf保存到log.txt中
        printf("buf: %s\n", buf);
        int m = write(fd, buf, strlen(buf));
        if(m == -1)
        {
            perror("write() failed");
            exit(0);
        }
        printf("m: %d\n", m);
    }

    return 0;
}
